java位运算之简单了解
1.十进制转化为二进制
将正整数转化为二进制的方法“除2取余,逆序排列”。
2.二进制转化为十进制
表示整数的二进制,第一位为标志位,0代表为正整数,位数从右开始,第一个位数为0,各位位数记作n,取各位的数字(1或者0)*2^n,然后将所有位的运算相加,就得到了十进制。
3.位运算
- 按位与:运算符&,对应位都是1,结果才是1,否则为0,精度与最高精度一致。按位与的运算结果不会大于参与运算的最小值
- 按位或:运算符|,对应位都是0,结果才是0,否则为1,精度与最高精度一致。按位或的运算结果不会小于参与运算的最大值
- 按位取反:运算符~,1转为0,0转化为1。
- 按位异或:运算符^,对应位相同,结果为0,否则为1,精度与最高精度一致。
- 移位操作:y<<n相当于y*2n,y>>n相当于y/2n。因为位运算执行速度快,所以在java代码中需要进行除以或者乘以2n运算时,可以采用位运算。
4.位运算的价值
位运算的处理速度快。
不能仅仅停滞在实现上,应该去追求代价更小、性能更优的实现